package com.zx._01_基础._010_util;

import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.util.Properties;
import java.util.ResourceBundle;
import org.junit.Test;

public class PropertiesUtil {

    @Test
    public void test01() throws Exception {
        // 方法1：通过绝对路劲读取******这个是从项目根目录下开始读取
        Properties p1 = new Properties();
        FileReader fr = new FileReader("src/properties/jdbc.properties");
        p1.load(fr);
        System.out.println(p1.getProperty("url"));

        // 方法2：通过getResourceAsStream（）方法读取******这个是从src根目录下开始读取
        Properties p2 = new Properties();
        InputStream is = PropertiesUtil.class.getClassLoader().getResourceAsStream("properties/jdbc.properties");
        p2.load(is);
        System.out.println(p2.getProperty("url"));

        // 方法3：JDK 1.5开始提供了一种更方便的方式******这个是从src根目录下开始读取***** 不能加后缀    config.dbconfig
        ResourceBundle rb = ResourceBundle.getBundle("properties/jdbc");
        System.out.println(rb.getString("url"));
    }

    @Test
    public void test02() throws Exception {
        //1.创建Properties对象
        Properties p = new Properties();

        //2.向这个Properties对象中插入元素
        p.setProperty("demo1", "123");

        //3.将Properties对象保存为int文件或Properties文件
        p.store(new FileOutputStream("demo.ini"), "comment line");

        //4.以本类所在的classpath为根目录读加载Properties文件
        InputStream is = PropertiesUtil.class.getClassLoader().getResourceAsStream("properites/demo.properties");

        p.load(is);

        //读取内容
        p.getProperty("demo1");

        //5.也可以操作xml文件
        p.loadFromXML(is);

        p.storeToXML(new FileOutputStream("properites/demo.xml"), "comment line");
    }


}
